package FulbitoFacil.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;

import FulbitoFacil.excepcion.DAOExcepcion;
import FulbitoFacil.modelo.Horario;
import FulbitoFacil.util.ConexionBD;

public class HorarioDAO extends BaseDAO {

	public String insertar(Horario c) throws DAOExcepcion {
		String mensaje = "";
		System.out.println("HorarioDAO: insertar()");
		String query = "INSERT INTO horario(dia,horaInicio,horaFin,tarifa_horario,promocionEspecial,descripcionPromocion,cancha_codCancha) VALUES (?,?,?,?,?,?,?)";
		Connection con = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		int idNroArmado = 0;
		try {
			con = ConexionBD.obtenerConexion();

			stmt = con.prepareStatement(query);
			stmt.setString(1, c.getDia());
			stmt.setString(2, c.getHoraInicio());
			stmt.setString(3, c.getHoraFin());
			stmt.setDouble(4, c.getTarifa_horario());
			stmt.setString(5, c.getPromocion());
			stmt.setString(6, c.getDescripcion());
			stmt.setInt(7, c.getCodCancha());
			int i = stmt.executeUpdate();
			if (i != 1) {
				throw new SQLException("No se pudo insertar");
			} else {
				String ConsultarIdGenerado = "SELECT LAST_INSERT_ID()";
				stmt = con.prepareStatement(ConsultarIdGenerado);
				rs = stmt.executeQuery();
				if (rs.next()) {
					idNroArmado = rs.getInt(1);
				}
				mensaje = "promocion Grabada Correctamente";
			}
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		} finally {
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
		return mensaje;
	}

	public Collection<Horario> ListarHorario() throws DAOExcepcion {
		System.out.println("Cancha: ListarHorario");
		String query = "SELECT dia,horaInicio,horaFin,tarifa_horario,promocionEspecial, descripcionPromocion,cancha_codCancha FROM horario";
		Collection<Horario> lstHorario = new ArrayList<Horario>();
		Connection con = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		try {
			con = ConexionBD.obtenerConexion();
			stmt = con.prepareStatement(query);
			rs = stmt.executeQuery();
			while (rs.next()) {
				Horario objHorario = new Horario();

				objHorario.setDia(rs.getString("dia"));
				objHorario.setHoraInicio(rs.getString("horaInicio"));
				objHorario.setHoraFin(rs.getString("horaFin"));
				objHorario.setTarifa_horario(rs.getDouble("tarifa_horario"));
				objHorario.setPromocion(rs.getString("promocionEspecial"));
				objHorario.setDescripcion(rs.getString("descripcionPromocion"));
				objHorario.setCodCancha(rs.getInt("cancha_codCancha"));
				lstHorario.add(objHorario);
			}
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		} finally {
			this.cerrarResultSet(rs);
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
		return lstHorario;
	}

}
